package cn.com.cifi.mars.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

/**
 * <p>
 * 投资回款分析表
 * </p>
 *
 * @author JingYuanXiang
 * @since 2020-12-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="DmInvestmentReturn对象", description="投资回款分析表")
public class DmInvestmentReturn implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "归属年月")
    private String affiliationMonth;

    @TableField(value="区域id")
    private String regionId;

    @TableField(value="区域名称")
    private String regionName;

    @TableField(value="城市公司id")
    private String cityCompanyId;

    @TableField(value="城市公司名称")
    private String cityCompanyName;

    @ApiModelProperty(value = "项目Id")
    private String projectId;

    @TableField(value = "项目编码")
    private String projectCode;

    @ApiModelProperty(value = "项目名称")
    private String projectName;

    @ApiModelProperty(value = "版本类型（投资正式版、调整版、实际版）")
    private String versionType;

    @ApiModelProperty(value = "产品构成父级code")
    private String proProductCode;

    @ApiModelProperty(value = "产品构成父级name")
    private String proProductType;

    @ApiModelProperty(value = "历史")
    private BigDecimal history;

    @ApiModelProperty(value = "第一月")
    private BigDecimal oneMonth;

    @ApiModelProperty(value = "第二月")
    private BigDecimal twoMonth;

    @ApiModelProperty(value = "第三月")
    private BigDecimal threeMonth;

    @ApiModelProperty(value = "第四月")
    private BigDecimal fourMonth;

    @ApiModelProperty(value = "第五月")
    private BigDecimal fiveMonth;

    @ApiModelProperty(value = "第六月")
    private BigDecimal sixMonth;

    @ApiModelProperty(value = "第七月")
    private BigDecimal sevenMonth;

    @ApiModelProperty(value = "第八月")
    private BigDecimal eightMonth;

    @ApiModelProperty(value = "第九月")
    private BigDecimal nineMonth;

    @ApiModelProperty(value = "第十月")
    private BigDecimal tenMonth;

    @ApiModelProperty(value = "第十一月")
    private BigDecimal elevenMonth;

    @ApiModelProperty(value = "第十二月")
    private BigDecimal twelveMonth;

    @ApiModelProperty(value = "第十三月")
    private BigDecimal thirteenMonth;

    @ApiModelProperty(value = "第十四月")
    private BigDecimal fourteenMonth;

    @ApiModelProperty(value = "第十五月")
    private BigDecimal fifteenMonth;

    @ApiModelProperty(value = "第十六月")
    private BigDecimal sixteenMonth;

    @ApiModelProperty(value = "第十七月")
    private BigDecimal seventeenMonth;

    @ApiModelProperty(value = "第十八月")
    private BigDecimal eighteenMonth;

    @ApiModelProperty(value = "第十九月")
    private BigDecimal nineteenMonth;

    @ApiModelProperty(value = "第二十月")
    private BigDecimal twentyMonth;

    @ApiModelProperty(value = "第二十一月")
    private BigDecimal twentyOneMonth;

    @ApiModelProperty(value = "第二十二月")
    private BigDecimal twentyTwoMonth;

    @ApiModelProperty(value = "第二十三月")
    private BigDecimal twentyThreeMonth;

    @ApiModelProperty(value = "第二十四月")
    private BigDecimal twentyFourMonth;

    @ApiModelProperty(value = "第二十五月")
    private BigDecimal twentyFiveMonth;

    @ApiModelProperty(value = "第二十六月")
    private BigDecimal twentySixMonth;

    @ApiModelProperty(value = "第二十七月")
    private BigDecimal twentySevenMonth;

    @ApiModelProperty(value = "第二十八月")
    private BigDecimal twentyEightMonth;

    @ApiModelProperty(value = "第二十九月")
    private BigDecimal twentyNineMonth;

    @ApiModelProperty(value = "第三十月")
    private BigDecimal thirtyMonth;

    @ApiModelProperty(value = "第三十一月")
    private BigDecimal thirtyOneMonth;

    @ApiModelProperty(value = "第三十二月")
    private BigDecimal thirtyTwoMonth;

    @ApiModelProperty(value = "第三十三月")
    private BigDecimal thirtyThreeMonth;

    @ApiModelProperty(value = "第三十四月")
    private BigDecimal thirtyFourMonth;

    @ApiModelProperty(value = "第三十五月")
    private BigDecimal thirtyFiveMonth;

    @ApiModelProperty(value = "第三十六月")
    private BigDecimal thirtySixMonth;

    @ApiModelProperty(value = "第四年第一季度")
    private BigDecimal fourYearOneQuarter;

    @ApiModelProperty(value = "第四年第二季度")
    private BigDecimal fourYearTwoQuarter;

    @ApiModelProperty(value = "第四年第三季度")
    private BigDecimal fourYearThreeQuarter;

    @ApiModelProperty(value = "第四年第四季度")
    private BigDecimal fourYearFourQuarter;

    @ApiModelProperty(value = "第五年第一季度")
    private BigDecimal fiveYearOneQuarter;

    @ApiModelProperty(value = "第五年第二季度")
    private BigDecimal fiveYearTwoQuarter;

    @ApiModelProperty(value = "第五年第三季度")
    private BigDecimal fiveYearThreeQuarter;

    @ApiModelProperty(value = "第五年第四季度")
    private BigDecimal fiveYearFourQuarter;

    @ApiModelProperty(value = "第六年第一季度")
    private BigDecimal sixYearOneQuarter;

    @ApiModelProperty(value = "第六年第二季度")
    private BigDecimal sixYearTwoQuarter;

    @ApiModelProperty(value = "第六年第三季度")
    private BigDecimal sixYearThreeQuarter;

    @ApiModelProperty(value = "第六年第四季度")
    private BigDecimal sixYearFourQuarter;

    @ApiModelProperty(value = "未来")
    private BigDecimal future;



    public Map<Integer, Object> getMonthMap() {
        Map<Integer, Object> moneyMap = new HashMap<>();
        moneyMap.put(1, this.getOneMonth());
        moneyMap.put(2, this.getTwoMonth());
        moneyMap.put(3, this.getThreeMonth());
        moneyMap.put(4, this.getFourMonth());
        moneyMap.put(5, this.getFiveMonth());
        moneyMap.put(6, this.getSixMonth());
        moneyMap.put(7, this.getSevenMonth());
        moneyMap.put(8, this.getEightMonth());
        moneyMap.put(9, this.getNineMonth());
        moneyMap.put(10,this.getTenMonth());
        moneyMap.put(11,this.getElevenMonth());
        moneyMap.put(12,this.getTwelveMonth());
        moneyMap.put(13,this.getThirteenMonth());
        moneyMap.put(14,this.getFourteenMonth());
        moneyMap.put(15,this.getFifteenMonth());
        moneyMap.put(16,this.getSixteenMonth());
        moneyMap.put(17,this.getSeventeenMonth());
        moneyMap.put(18,this.getEighteenMonth());
        moneyMap.put(19,this.getNineteenMonth());
        moneyMap.put(20,this.getTwentyMonth());
        moneyMap.put(21,this.getTwentyOneMonth());
        moneyMap.put(22,this.getTwentyTwoMonth());
        moneyMap.put(23,this.getTwentyThreeMonth());
        moneyMap.put(24,this.getTwentyFourMonth());
        moneyMap.put(25,this.getTwentyFiveMonth());
        moneyMap.put(26,this.getTwentySixMonth());
        moneyMap.put(27,this.getTwentySevenMonth());
        moneyMap.put(28,this.getTwentyEightMonth());
        moneyMap.put(29,this.getTwentyNineMonth());
        moneyMap.put(30,this.getThirtyMonth());
        moneyMap.put(31,this.getThirtyOneMonth());
        moneyMap.put(32,this.getThirtyThreeMonth());
        moneyMap.put(33,this.getThirtyThreeMonth());
        moneyMap.put(34,this.getThirtyFourMonth());
        moneyMap.put(35,this.getThirtyFiveMonth());
        moneyMap.put(36,this.getThirtySixMonth());
        return moneyMap;
    }

    public Map<Integer, Object> getQuarterMap() {
        Map<Integer, Object> moneyMap = new HashMap<>();
        moneyMap.put(1,this.getFourYearOneQuarter());
        moneyMap.put(2,this.getFourYearTwoQuarter());
        moneyMap.put(3,this.getFourYearThreeQuarter());
        moneyMap.put(4,this.getFourYearFourQuarter());
        moneyMap.put(5,this.getFiveYearOneQuarter());
        moneyMap.put(6,this.getFiveYearTwoQuarter());
        moneyMap.put(7,this.getFiveYearThreeQuarter());
        moneyMap.put(8,this.getFiveYearFourQuarter());
        moneyMap.put(9,this.getSixYearOneQuarter());
        moneyMap.put(10,this.getSixYearTwoQuarter());
        moneyMap.put(11,this.getSixYearThreeQuarter());
        moneyMap.put(12,this.getSixYearFourQuarter());
        return moneyMap;
    }

}
